package org.iteracionIV.presen;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import java.awt.FlowLayout;

import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;

import java.awt.Color;

import javax.swing.JTextPane;

import org.iteracionI.persis.AgenteBD;
import org.iteracionIV.dom.Gestor_reserva;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;

public class JFrameReservaLibro extends JFrame {

	private JPanel contentPane;
	private JTextField textFieldTitulo;
        private JTextField textFieldSignatura;
        private JTextField textFieldISBN;
	private JTextPane textPane;
	static  JLabel pres = new JLabel();
	static 		JLabel label2 = new JLabel();
	static      JLabel label3 = new JLabel();
	static 		JLabel label_1 = new JLabel();
	static      JButton btnLimpiar = new JButton();
	static 		JButton btnRegistrar = new JButton();
	public static String idioma;
        
	public JFrameReservaLibro(){
		
		try {
			idioma=ConsultarIdioma();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		idioma(idioma);

		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 420, 319);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
                

		pres.setBounds(6, 2, 386, 43);
		contentPane.add(pres);
		

		label2.setBounds(6, 37, 69, 16);
		contentPane.add(label2);
                

		label3.setBounds(6, 81, 69, 16);
		contentPane.add(label3);
                
                JLabel label4 = new JLabel("ISBN:");
		label4.setBounds(6, 120, 69, 16);
		contentPane.add(label4);
		
		textFieldTitulo = new JTextField();
		textFieldTitulo.setBounds(87, 37, 134, 28);
		contentPane.add(textFieldTitulo);
		textFieldTitulo.setColumns(10);
                
                textFieldSignatura = new JTextField();
		textFieldSignatura.setColumns(10);
		textFieldSignatura.setBounds(87, 81, 134, 28);
		contentPane.add(textFieldSignatura);
                
                textFieldISBN = new JTextField();
		textFieldISBN.setColumns(10);
		textFieldISBN.setBounds(87, 120, 134, 28);
		contentPane.add(textFieldISBN);
		

		btnRegistrar.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent arg0){
                            boolean res=false;
                            String titulo,signatura,isbn;
                            titulo = textFieldTitulo.getText();
                            signatura = textFieldSignatura.getText();
                            isbn = textFieldISBN.getText();
                           
                           Gestor_reserva reserva;
                           reserva = new Gestor_reserva();
                           
                           try {
                               res = reserva.ReservarLibro(titulo, signatura,isbn);
                           } catch (Exception ex) {
                                Logger.getLogger(JFrameReservaLibro.class.getName()).log(Level.SEVERE, null, ex);
                           }
                           if (res==true){
                               if(idioma.equals("Español")){
                                   textPane.setText("Reserva realizada correctamente.");
                               }
                               else{
                                   textPane.setText("Booked properly.");
                               }

                           }
                           else{
                               if(idioma.equals("Español")){
                                   textPane.setText("El libro no se ha podido reservar, no se encuentra disponible o no existe en la BD.");
                               }
                               else{
                                   textPane.setText("The book could not book it is not available or does not exist in the database .");
                               }

                           }
			}
		});
		btnRegistrar.setBounds(253, 76, 117, 29);
		contentPane.add(btnRegistrar);
		

                
                btnLimpiar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
                            
                            textPane.setText(null);
                            textFieldTitulo.setText(null);
                            textFieldSignatura.setText(null);
                            textFieldISBN.setText(null);
			}
		});
                
                btnLimpiar.setBounds(253, 176, 117, 29);
		contentPane.add(btnLimpiar);
                

		label_1.setForeground(Color.BLUE);
		label_1.setBounds(6, 210, 61, 16);
		contentPane.add(label_1);
		
		textPane = new JTextPane();
		textPane.setToolTipText("Panel para mostrar el restultado de la comprobaci\u00F3n de login o las excepciones lanzadas");
		textPane.setEditable(false);
		textPane.setBounds(6, 230, 407, 102);
		contentPane.add(textPane);
	}
    public void idioma(String idioma){
    	if(idioma.equals("Español")){
    		setEspañol();
    	}
    	if(idioma.equals("English")){
    		setEnglish();
    	}
    }
    
    public void setEspañol(){
        setTitle("Reservar Libro");
        pres.setText("Rellene un único campo, si no, puede dar error. =D");
        label2.setText("Titulo:");
        label3.setText("Signatura:");
        label_1.setText("Estado");
        btnLimpiar.setText("Limpiar");
        btnRegistrar.setText("Reservar");

    }
    public void setEnglish(){
        setTitle("Reserve Book");
        pres.setText("Fill a single field , if you can not give error.");
        label2.setText("Title:");
        label3.setText("Document:");
        label_1.setText("State");
        btnLimpiar.setText("Clear");
        btnRegistrar.setText("Reserve");

    }
	public String ConsultarIdioma() throws Exception{
		String idioma = null;
		
        Vector<Object> aux = null;
        String tipo="";
        String SQL_Consulta = "SELECT * FROM Idioma;";
		AgenteBD agen = AgenteBD.getAgente();
		Vector<Object> res = agen.selectIdioma(SQL_Consulta);
		if (res.size() == 1){
			aux = (Vector<Object>) res.elementAt(0);
			tipo = aux.elementAt(0).toString(); 
		}
		
		idioma=tipo;
		return idioma;
	}
}
